notebook: Don't crash when dnd'ing tabs out
authorBenjamin Otte <otte@redhat.com>
Mon, 18 Jan 2016 14:01:49 +0000 (15:01 +0100)
committerBenjamin Otte <otte@redhat.com>
Mon, 18 Jan 2016 14:39:02 +0000 (15:39 +0100)
https://bugzilla.gnome.org/show_bug.cgi?id=760754

gtk/gtknotebook.c

index fd85d895f430afee56b4e3af64c64bf430d0983c..8481d45bad55d8b1c007c25b6301a04a013cd5ad 100644 (file)
@@ -3060,9 +3060,18 @@ gtk_notebook_stop_reorder (GtkNotebook *notebook)
 
           priv->has_scrolled = FALSE;
           priv->during_reorder = FALSE;
-        }
 
-      hide_drag_window (notebook, priv, page);
+          hide_drag_window (notebook, priv, page);
+        }
+      else
+        {
+          g_object_ref (page->tab_label);
+          gtk_container_remove (GTK_CONTAINER (gtk_widget_get_parent (page->tab_label)), page->tab_label);
+          gtk_css_node_set_parent (gtk_widget_get_css_node (page->tab_label),
+                                   gtk_css_gadget_get_node (page->gadget));
+          gtk_widget_set_parent (page->tab_label, GTK_WIDGET (notebook));
+          g_object_unref (page->tab_label);
+        }
 
       priv->operation = DRAG_OPERATION_NONE;